package com.bo.sina.weibo.image;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;

public class HttpImage {
	public static byte[] getUrlImg(String URLName) throws Exception {//URLName照片地址   
		// target本地地址   
		int HttpResult = 0; //服务器返回的状态   
		URL url = new URL(URLName); //创建URL   
		URLConnection urlconn = url.openConnection(); // 试图连接并取得返回状态码urlconn.connect();   
		HttpURLConnection httpconn = (HttpURLConnection) urlconn;   
		HttpResult = httpconn.getResponseCode();   
//		System.out.println(HttpResult);   
		if (HttpResult != HttpURLConnection.HTTP_OK) // 不等于HTTP_OK说明连接不成功
			System.out.print("fail");   
		else {   
			int filesize = urlconn.getContentLength(); // 取数据长度System.out.println(filesize);   
			BufferedInputStream bis=new BufferedInputStream(urlconn.getInputStream());   
			byte[] buffer = new byte[bis.available()]; //创建存放输入流的缓冲   
			int num = -1; //读入的字节数   
			while (true) {   
				num = bis.read(buffer); // 读入到缓冲区   
				if (num ==-1){   
				break; //已经读完   
				}   
			}   
			bis.close(); 
			httpconn.disconnect();
			return buffer;
		} 
		return null;
	}    
	public static void getUrlImg(String URLName,String target) throws Exception {//URLName照片地址   
		// target本地地址   
		int HttpResult = 0; //服务器返回的状态   
		URL url = new URL(URLName); //创建URL   
		URLConnection urlconn = url.openConnection(); // 试图连接并取得返回状态码urlconn.connect();   
		HttpURLConnection httpconn = (HttpURLConnection) urlconn;   
		HttpResult = httpconn.getResponseCode();   
		System.out.println(HttpResult);   
		if (HttpResult != HttpURLConnection.HTTP_OK) // 不等于HTTP_OK说明连接不成功
			System.out.print("fail");   
		else {   
		int filesize = urlconn.getContentLength(); // 取数据长度System.out.println(filesize);   
		BufferedInputStream bis=new BufferedInputStream(urlconn.getInputStream());   
		BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream(target));   
		byte[] buffer = new byte[1024]; //创建存放输入流的缓冲   
		int num = -1; //读入的字节数   
		while (true) {   
		num = bis.read(buffer); // 读入到缓冲区   
		if (num ==-1){   
		bos.flush();   
		break; //已经读完   
		}   
		bos.flush();   
		bos.write(buffer,0,num);   
		}   
		bos.close();   
		bis.close();   
		}   
	}    
	
	/**
	 * @param args
	 * @throws Exception 
	 */
	public static void main(String[] args) throws Exception {
//		HttpImage.getUrlImg("http://img04.taobaocdn.com/bao/uploaded/i4/19402030855984462/T1FOIWXeVbXXXXXXXX_!!0-item_pic.jpg", "d://a.jpg");
		HttpImage.getUrlImg("http://img04.taobaocdn.com/bao/uploaded/i4/19402030855984462/T1FOIWXeVbXXXXXXXX_!!0-item_pic.jpg");
	}

}
